﻿using System;
using System.Collections.Generic;
using EXT;
using System.Linq;
using System.Windows.Forms;
using BanHangCshap.Class.gkhtdl63.DAL.Entities;
using BanHangCshap.Class.gkhtdl63.BLL;
using System.Drawing;

namespace BanHangCshap.DanhMuc.gkhtdl63
{
    public partial class frmBoSanphamChitiet : Form
    {
        bool xgThemSua;
        BoSanpham xgBSP;
        string xgMacu = "";
        BoSanphamBLL xgBoSanphamBLL = new BoSanphamBLL();
        public event MyEvent_LoadData ETailai = null;


        public frmBoSanphamChitiet(bool xlThemSua, Class.gkhtdl63.DAL.Entities.BoSanpham xlBSP)
        {
            this.xgThemSua = xlThemSua;
            this.xgBSP = xlBSP;
            InitializeComponent();
        }

        /// <summary>
        /// Kiểm tra các ràn buộc dữ liệu nhập vào trước khi lưu
        /// </summary>
        /// <returns>True cho lưu, False Có lỗi</returns>
        private bool KiemtraTruockhiLuu()
        {
            if (txtMa.Text.Trim()=="")
            {
                UltitityStatic.thongBaoLoi("Chưa nhập mã");
                txtMa.Focus();
                return false;
            }
            if (xgThemSua)
            {
                if (xgBoSanphamBLL.BoSanpham_KiemtraTontai(txtMa.EditValue.ToString()) && txtMa.EditValue.ToString() != xgMacu)
                {
                    UltitityStatic.thongBaoLoi("Mã điều kiện bảo hành đã tồn tại!\n\nVui lòng nhập mã khác");
                    txtMa.Focus();
                    return false;
                }
            }
            if (gleMa_LoaiBoSanpham1.EditValue==null)
            {
                UltitityStatic.thongBaoLoi("Chưa chọn dòng sản phẩm\n\nVui lòng chọn dòng sản phẩm");
                gleMa_LoaiBoSanpham1.Focus();
                return false;
            }
            if (txtMota.Text.Trim() == "")
            {
                UltitityStatic.thongBaoLoi("Chưa nhập mô tả cho điều kiện bảo hành");
                txtMota.Focus();
                return false;
            }
            return true;
        }

        /// <summary>
        /// Xóa trống các giá trị của các control
        /// </summary>
        private void DatlaiGiatri()
        {
            txtMa.EditValue = null;
            gleMa_LoaiBoSanpham1.EditValue = null;
            txtMota.EditValue = null;
            dtpNgaytao.EditValue = DateTime.Now;
            txtMa.Focus();
        }

        /// <summary>
        /// Gán giá trị ban đầu cho các control
        /// </summary>
        private void GangiatriControl()
        {
            txtMa.EditValue = xgBSP.Ma;
            xgMacu = xgBSP.Ma;
            txtTen.EditValue = xgBSP.Ten;
            gleMa_LoaiBoSanpham1.EditValue = xgBSP.Ma_LoaiBoSanpham;
            txtMota.EditValue = xgBSP.Mota;
            dtpNgaytao.EditValue = xgBSP.Ngaytao;
            txtMa.Focus();
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (!KiemtraTruockhiLuu()) return;
            xgBSP.Ma = txtMa.EditValue.ToString().ChuyenSangChuoiKhongDau().ToUpper();
            xgBSP.Ma_LoaiBoSanpham = gleMa_LoaiBoSanpham1.EditValue.ToString();
            xgBSP.Ten = txtTen.EditValue.ToString().ToUpperFirst();
            xgBSP.Mota = txtMa.EditValue.ToString().ToUpperFirst();
            xgBSP.Ngaytao = DateTime.Now;
            xgBSP.MaNguoidung = UserStatic.tendn;
            if (xgThemSua)
            {
                if (xgBoSanphamBLL.BoSanpham_Them(xgBSP))
                {
                    if (ETailai != null)
                    {
                        ETailai(this, new ELoadData() { IsLoadData = true });
                    }
                    DatlaiGiatri();
                }
                else UltitityStatic.thongBaoLoi("Không thể thêm, kiểm tra kết nối đến CSDL");
            }
            else
            {
                if (xgBoSanphamBLL.BoSanpham_Capnhat(xgMacu, xgBSP))
                {
                    if (ETailai != null)
                    {
                        ETailai(this, new ELoadData() { IsLoadData = true });
                    }
                    this.Close();
                }
                else UltitityStatic.thongBaoLoi("Không thể thêm, kiểm tra kết nối đến CSDL");
            }
        }

        private void pal1_Resize(object sender, EventArgs e)
        {
            int x = (int)((pal1.Size.Width - pal2.Size.Width) / 2);
            int y = (int)((pal1.Size.Height - pal2.Size.Height) / 2);
            pal2.Location = new Point(x, y);
        }

        private void frmBoSanphamChitiet_Load_1(object sender, EventArgs e)
        {
            Class.gkhtdl63.BLL.LoaiBoSanphamBLL xlLoaiBoSanpham = new LoaiBoSanphamBLL();
            gleMa_LoaiBoSanpham1.Properties.DataSource= xlLoaiBoSanpham.LoaiBoSanpham_LayDanhsach();

            if (xgThemSua)
            {
                DatlaiGiatri();
            }
            else
            {
                GangiatriControl();
                dtpNgaytao.Enabled = false;
            }
        }
    }
}
